#include <stdio.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>
#include <sys/stat.h>
#include <unistd.h>
#include <fcntl.h>
#include <string.h>
#include "msg_queue.h"
#include "struct.h"

static int msgid_ctos;
static int msgid_stoc;

int main()
{
	while(1)
	{
		msgid_ctos = get_ctos_msg();
		msgid_stoc = get_stoc_msg();
		Msg msg_ctos = {};
		Msg msg_stoc = {};
		User user = {};
		msgrcv(msgid_ctos,&msg_ctos,sizeof(Msg),TYPE_QUERY,0);
		char path[50] = "user/";
		sprintf(path,"%s%d",path,msg_ctos.user.account);
		strcat(path,".txt");
		printf("%s\n",path);
		int fd = open(path,O_RDONLY);
		if(0 > fd)
		{
			perror("open");
			return -1;
		}
		if(0 > read(fd,&user,sizeof(User)))
		{
			perror("read");
			return -1;
		}
		msg_stoc.type = msg_ctos.pid;
		sprintf(msg_stoc.result,"身份证号为%s,账户余额为%d",user.id,user.money);
		msgsnd(msgid_stoc,&msg_stoc,sizeof(Msg)-sizeof(msg_stoc.type),0);
	}
}
